Lifecycle methods are available to class based components:
- constructor
- static getDerivedStateFromProps
- render()
- componentDidMount
- getSnapshotBeforeUpdate
- shouldComponentUpdate
- componentDidUpdate -> after the component updates
- componentWillUnmount() → cleanup when the component is unmounting
- componentDidCatch